package com.xbongbong.saas.enums.dictionary;

import lombok.Getter;

import java.util.Objects;

/**
 * @author: 汪腾伟
 * @date: Created in 2021/7/5 19:16
 * @description： 资金修复数据标志的枚举
 */
@Getter
public enum FundFixTagEnum {

    /**
     * 校正合同已收、未收、坏账金额、收款比例
     */
    CONTRACT_FIX_TAG("1"),

    /**
     * 合同的开票金额和未开票金额
     */
    CONTRACT_INVOICE_FIX_TAG("2"),

    /**
     * 回款计划开票金额和未开票金额
     */
    PAYMENT_INVOICE_FIX_TAG("3"),

    /**
     * 回款单开票金额和未开票金额
     */
    PAYMENT_SHEET_INVOICE_FIX_TAG("4"),

    /**
     * 采购合同的已付、未付、坏账金额、付款比例
     */
    PURCHASE_FIX_TAG("5"),

    /**
     * 采购合同/付款计划/付款单的开票金额、未开票金额
     */
    PURCHASE_INVOICE_FIX_TAG("6"),

    /**
     * 付款计划开票金额和未开票金额
     */
    PAY_INVOICE_FIX_TAG("7"),

    /**
     * 付款单开票金额和未开票金额
     */
    PAY_SHEET_INVOICE_FIX_TAG("8"),

    /**
     * 回款计划的已收、未收、坏账金额、回款状态
     */
    PAYMENT_FIX_TAG("9"),

    /**
     * 付款计划的已付、未付、坏账、付款状态
     */
    PAY_FIX_TAG("10"),

    /**
     * 预收款余额
     */
    PREPAYMENT_BALANCE_FIX_TAG("11"),

    /**
     * 预付款余额
     */
    PREPAY_BALANCE_FIX_TAG("12"),
    ;

    /**
     * 修复标志
     */
    private String fixTag;

    FundFixTagEnum(String fixTag) {
        this.fixTag = fixTag;
    }

    /**
     * 根据fixTag获取枚举
     *
     * @param fixTag 校正标识
     * @return
     */
    public static FundFixTagEnum getFundFixTagByType(String fixTag) {
        for (FundFixTagEnum fundFixTagEnum : FundFixTagEnum.values()) {
            if (Objects.equals(fixTag, fundFixTagEnum.getFixTag())) {
                return fundFixTagEnum;
            }
        }
        return null;
    }
}
